#ifndef RENDERINFORMATION_H
#define RENDERINFORMATION_H
#include "DXUT.h"

struct ConstantBuffer
{
	D3DXMATRIX mWorld;
	D3DXMATRIX mView;
	D3DXMATRIX mProjection;
};

//__declspec(align(16))
struct CB_VS_PER_FRAME
{
	D3DXMATRIX	mView;
	D3DXMATRIX	mViewProjection;
	D3DXVECTOR4 cLightDiffuse;
	D3DXVECTOR4	vEyePos; 
	float		fFogStart;
	float		fFogEnd;
	float		fTime;
	float		unused;
};

struct CB_PS_PER_FRAME
{
	D3DXVECTOR4 cFogColor;
};

struct CB_VS_PER_OBJECT
{
	D3DXMATRIX  mWorld;
	D3DXVECTOR4 lGloballight;
};

const D3D11_INPUT_ELEMENT_DESC BlockLayout[] =
{
	{ "POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0,  0, D3D11_INPUT_PER_VERTEX_DATA, 0 },
	{ "TEXCOORD", 0, DXGI_FORMAT_R32G32_FLOAT,    0, 12, D3D11_INPUT_PER_VERTEX_DATA, 0 },
	{ "TEXCOORD", 1, DXGI_FORMAT_R32G32_FLOAT,	  0, 20, D3D11_INPUT_PER_VERTEX_DATA, 0 },
	{ "COLOR",    0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 28, D3D11_INPUT_PER_VERTEX_DATA, 0 },
};

struct BlockVertex
{
	D3DXVECTOR3 Pos;
	D3DXVECTOR2 Tex;
	float		skyLight;
	float		blockLight;
	D3DXVECTOR3 Color;
};

struct BasicVertex
{
    D3DXVECTOR3 Pos;
};

#endif